package com.yupi.yupicturebackend.model.dto.picture;

import lombok.Data;

import java.io.Serializable;

/**
 * 批量处理配置
 *
 * @author yupi
 */
@Data
public class BatchProcessConfig implements Serializable {

    /**
     * 是否启用尺寸调整
     */
    private boolean enableResize = false;

    /**
     * 目标宽度
     */
    private Integer targetWidth;

    /**
     * 目标高度
     */
    private Integer targetHeight;

    /**
     * 是否保持宽高比
     */
    private boolean keepAspectRatio = true;

    /**
     * 是否启用滤镜
     */
    private boolean enableFilter = false;

    /**
     * 滤镜配置
     */
    private FilterConfig filterConfig;

    /**
     * 是否启用亮度对比度调整
     */
    private boolean enableBrightnessContrast = false;

    /**
     * 亮度调整 (-1.0 到 1.0)
     */
    private Float brightness = 0.0f;

    /**
     * 对比度调整 (0.0 到 2.0)
     */
    private Float contrast = 1.0f;

    /**
     * 是否启用格式转换
     */
    private boolean enableFormatConversion = false;

    /**
     * 目标格式
     */
    private String targetFormat = "jpg";

    /**
     * 压缩质量 (0.1 到 1.0)
     */
    private Float quality = 0.8f;

    /**
     * 是否启用水印
     */
    private boolean enableWatermark = false;

    /**
     * 水印配置
     */
    private WatermarkConfig watermarkConfig;

    /**
     * 是否启用边框
     */
    private boolean enableBorder = false;

    /**
     * 边框宽度
     */
    private Integer borderWidth = 5;

    /**
     * 边框颜色
     */
    private String borderColor = "#FFFFFF";

    /**
     * 处理模式 (sequential, parallel)
     */
    private String processMode = "parallel";

    /**
     * 最大并发数
     */
    private Integer maxConcurrency = 10;

    /**
     * 输出目录
     */
    private String outputDirectory;

    /**
     * 文件名前缀
     */
    private String fileNamePrefix;

    /**
     * 文件名后缀
     */
    private String fileNameSuffix;

    private static final long serialVersionUID = 1L;
}
